Usage of digital communications networks such as the Internet continues to expand at a very rapid rate. One feature of the Internet that has led to its widespread adoption is its convenience in identifying destination hosts on the network. Computers generally address each other using numeric addresses that can be expressed in binary, hexadecimal, decimal or other numeric form. The well-known Internet Protocol (IP), for example, identifies computers communicating on a network by a unique address commonly expressed in human terms as four decimal numbers separated by periods in the case of version 4 of the protocol (IPv4), e.g. “151.207.247.130”, or as eight hexadecimal numbers separated by colons in the case of version 6 of the protocol (IPv6), e.g. “2501:0db8:87a4:0000:0000:ba2e:0370:6214”. These IP addresses, while useful to computers, are generally very difficult for most humans to remember.
As a result, the domain name system (DNS) has been developed and widely deployed to translate IP addresses used by computers to and from names that are more easily remembered by people. If a user operating a client device wishes to contact a particular host on the Internet identified by a particular fully qualified domain name (e.g. “www.yandex.com”), the client device contacts a DNS server on the network to request the IP address for that domain name (e.g. “100.43.87.3”). The client device can then use the IP address to contact the relevant host on the network. The process of translating a domain name into an IP address is known as domain name resolution. A detailed description of conventional DNS resolution is provided in a document entitled “RFC 1035-Domain Names-Implementation and Specification”, by P. Mockapetris, November 1987, the entirety of which is hereby incorporated by reference herein in those jurisdictions allowing for incorporation by reference.
Conventional domain name resolution technology requires that, in order to resolve a domain name, a client device send a request (directly or indirectly) to a DNS server for the IP address associated with a domain name. The domain name server responds to a client device's request with the IP address, as well as with a parameter indicating for how long the information being provided (e.g. the IP address) is to be considered valid. This is because domain names can (and often do) change IP addresses with which they are associated. This “freshness” parameter is typically referred to as a “time-to-live” or “TTL” value. After a first request for resolution of a domain name, should a client device again need the IP address of a domain name at a time within the TTL value of the client device's last having been provided with this information, no second request is required; the client device will simply use the IP address already having been provided to it. If however the TTL value has been exceeded, the client device will consider the information it had previously received stale, and will make another request to a DNS server for resolution of the domain name.
Because domain name resolution is today performed very frequently, even small improvements in its efficiency can, for example, have a significant beneficial cumulative effect.
In some network configurations, the particular properties of the network link between a client device and a domain name server are such that conventional domain name resolution operates more slowly than desirable. For example, if a client device is connected to a domain name server via a high-latency link such as a satellite communications link, the time necessary to receive a response to domain name resolution queries initiated by the client device can be significant, and such delay can be frustrating to the end user. As an improvement in this area, U.S. Pat. No. 8,285,870, issued Oct. 9, 2012 to Taylor et al., entitled “Systems and Methods for Statistical Resolution of Domain Name Service (DNS) Requests”, discloses (according to its abstract): “Systems and methods . . . for resolving domain name services (DNS) queries for address information about hosts on a network. The queries are posited from remote users across a satellite or other remote link to a network, and are monitored as they pass through a central node logically present between the remote link and the network. A list of statistically significant hosts on the network is maintained and transmitted from the central node to the plurality of remote users across the remote link. By providing the remote nodes with a current list of popular hosts and associated address information, subsequent domain name services queries placed for the statistically significant hosts may be resolved without communicating across the remote link.”
While the systems and methods disclosed in Taylor may be adequate, further improvement in DNS technology may be desirable.